package com.kuaiditu.assistant.dagger.components;

import android.app.Application;

import com.baidu.location.LocationClient;
import com.kuaiditu.assistant.App;
import com.kuaiditu.assistant.api.ApiManager;
import com.kuaiditu.assistant.api.ParamsAnalog;
import com.kuaiditu.assistant.api.yd_api.entity.DaoSession;
import com.kuaiditu.assistant.base.BaseActivity;
import com.kuaiditu.assistant.dagger.modules.ApiModule;
import com.kuaiditu.assistant.dagger.modules.AppModule;
import com.kuaiditu.assistant.dagger.modules.DBModule;
import com.kuaiditu.assistant.module.storage.AssistantUserStorage;
import com.kuaiditu.assistant.ui.scan.BaseScanActivity;

import javax.inject.Singleton;

import dagger.Component;

/**
 * Created by Eenie on 2017/5/3.
 * Email: eeniework@gmail.com
 * Des:APP全局组件 需要获取实例的方法在这里写
 */
@Singleton
@Component(modules = {AppModule.class, DBModule.class, ApiModule.class})
public interface AppComponent {
    App getAppContext();

    //
//    ForumApi getForumApi();
//
//    ContendApi getContendApi();
//
//    MasterApi getMasterApi();
//
//    FileManager getFileManager();
//
    ParamsAnalog getParamsAnalog();
    LocationClient getLocationClient();
    //
    AssistantUserStorage getUserStorage();

    ApiManager getApiManager();

    //
//
    DaoSession getDaoSession();

    void inject(Application application);

    void inject(BaseScanActivity activity);
    void inject(BaseActivity activity);
}
